﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ParametresVariable
{
    class Program
    {
        public static int meth(int a, int b, params int[] liste)
        {
            int somme = a + b;
            for (int i = 0; i < liste.Length; i++) somme += liste[i];
            return somme;
        }

        public static int methode1(int a, int b)
        {
            if (a == 0)
                return 0; // arrête l'exécution et renvoie le résultat 0
            return a + b; // arrête l'exécution et renvoie le résultat a+b
        }
        public static void methode2(int a)
        {
            if (a == 0)
                return; // arrête simplement l'exécution
            Console.WriteLine("methode2 paramètre = " + a);
        }

        static void Main(string[] args)
        {
            int x = 10, y = 20;

            // passage de paramètres effectifs :
            Console.WriteLine(meth(x, y, 100, 200));  // 4 paramètres effectifs
            Console.WriteLine(meth(x, y, -5, -10, -5, -8, -2)); // 7 paramètres effectifs
            Console.WriteLine(meth(x, y)); // 2 paramètres effectifs (liste params vide)

            Console.WriteLine(" Test Retour----------------------------");

           int z = 0;
            x = 10;
            y = 20;
            z = methode1(x, y);
            Console.WriteLine("z = " + z);
            x = 0;
            y = 20;
            z = methode1(x, y);
            Console.WriteLine("z = " + z);
            Console.WriteLine("----------------------------");
            x = 10;
            methode2(x);
            x = 0;
            methode2(x);

            Console.WriteLine(" Test String----------------------------");
            string s;
            s = "bonjour";
            Console.WriteLine(s);

            char[] tchar = new char[] 
{
'a', 'b', 'c', 'd', 'e', 'f'
};
            s = new string(tchar);
            Console.WriteLine(s);
            Console.WriteLine("Longueur de s : " + s.Length);

            s = s.Insert(2, "xyz");
            Console.WriteLine("s = s.Insert(2,'xyz') : " + s);

            s = s.Remove(2, 3);
            Console.WriteLine("s = s.Remove(2,3) : " + s);

            s = s.Substring(2, 3);
            Console.WriteLine("s = s.Remove(2,3) : " + s);

            char[] arrayChar = s.ToCharArray();
            for (int i = 0; i < arrayChar.Length; i++)
                Console.WriteLine("i=" + i + " : " + arrayChar[i]);

            ///////////////////////////////////
            s = "bonjour, cher ami, ceci est une phrase, séparée par des virgules.";
            Console.WriteLine("phrase initiale : \n" + s);
            Console.WriteLine("rang de la sous-chaîne 'ceci est' = " + s.IndexOf("ceci est"));

            Console.WriteLine("\nextraction des sous-chaînes séparées par des virgules :");
            string[] motsVirg = s.Split(',');
            foreach (string mot in motsVirg)
                Console.WriteLine(mot);

            Console.WriteLine("\nextraction des sous-chaînes séparées par des blancs :");
            string[] motsBlanc = s.Split(' ');
            foreach (string mot in motsBlanc)
                Console.WriteLine(mot);

            s = "        BoNjour.  ";
            Console.WriteLine("\nefface tous les blancs au début et en fin de chaîne :");
            string s1 = s.Trim();
            Console.WriteLine("avant : [" + s + "], après : [" + s1 + "]");

            Console.WriteLine("\nefface le point '.' en fin de chaîne :");
            string s2 = s1.TrimEnd('.');
            Console.WriteLine("avant : [" + s1 + "], après : [" + s2 + "]");

            Console.WriteLine("\nconvertit la nouvelle chaîne en majuscule :");
            string s3 = s2.ToUpper();
            Console.WriteLine("avant : [" + s2 + "], après : [" + s3 + "]");

            Console.WriteLine("\nconvertit la nouvelle chaîne en minuscule :");
            string s4 = s2.ToLower();
            Console.WriteLine("avant : [" + s2 + "], après : [" + s4 + "]");

            Console.WriteLine("\nremplace l'article 'le' par l'article 'un' :");
            s = "le chat aime le rat et le chien n'aime pas le chat.";
            Console.WriteLine("phrase avant : " + s);
            string s5 = s.Replace("le", "un");
            Console.WriteLine("phrase après : " + s5);


            Console.ReadLine();
        }

  
    }
}
